﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using _3.Datos.Inventario;
using _4.Modelado.Inventario;

namespace _2.Logica.Inventario
{
    public class ArticuloL : Negocio
    {
        public void ArticuloGuardar(Articulo obj)
        {
            try
            {
                IniciarTransanccion();


                var objBD = new ArticuloBD();

                objBD.ArticuloGuardar(comando, obj);

                ConfirmarTransaccion();

            }
            catch (Exception e)
            {
                DeshacerTransaccion();
                throw e;
            }
        }



        public void ArticuloEliminar(Articulo obj)
        {
            try
            {
                this.IniciarTransanccion();

                var objBD = new ArticuloBD();

                objBD.ArticuloEliminar(this.comando, obj);

                this.ConfirmarTransaccion();

            }
            catch (Exception e)
            {
                this.DeshacerTransaccion();
                throw e;
            }
        }

        public List<Articulo> ArticulosConsultar()
        {
            try
            {
                IniciarTransanccion();

                var objBD = new ArticuloBD();

                List<Articulo> lista = objBD.ArticulosConsultar(this.comando);

                CerrarConexion();

                return lista;
            }
            catch (Exception exc)
            {
                CerrarConexion();
                throw exc;
            }
        }
       
        public List<Articulo> Articulos_ActivosConsultar()
        {
            try
            {
                IniciarTransanccion();

                var objBD = new ArticuloBD();

                List<Articulo> lista = objBD.Articulos_ActivosConsultar(this.comando);

                CerrarConexion();

                return lista;
            }
            catch (Exception exc)
            {
                CerrarConexion();
                throw exc;
            }
        }
        public List<Articulo> Articulos_ActivosPorBodegaConsultar(int FkBodega)
        {
            try
            {
                IniciarTransanccion();

                var objBD = new ArticuloBD();

                List<Articulo> lista = objBD.Articulos_ActivosPorBodegaConsultar(this.comando, FkBodega);

                CerrarConexion();

                return lista;
            }
            catch (Exception exc)
            {
                CerrarConexion();
                throw exc;
            }
        }

        public DataTable LlenarComboArticulo()
        {
            try
            {
                IniciarTransanccion();

                var objBD = new ArticuloBD();

                DataTable lista = objBD.LlenarComboArticulo(this.comando);

                CerrarConexion();

                return lista;
            }
            catch (Exception exc)
            {
                CerrarConexion();
                throw exc;
            }
        }

    }

}
